using Proyecto2Bases.CustomClasses.Manejadores;
using System;
using System.Collections.Generic;
using System.Data.SqlClient;
using System.Linq;
using System.Web;
using Proyecto2Bases.Models;

namespace Proyecto2Bases.CustomClasses.CargaDatos
{
    public class CargaMovimientos
    {
        public static List<Models.MovimientoSaldoModel> CargarDatos(int pIdCuenta, DateTime pFechaMaxima, DateTime pFechaMinima)
        {
            try
            {
                SqlCommand sqlcmd = new SqlCommand();
                sqlcmd.Connection = ManejadorDb.getInstance().getConexion();
                sqlcmd.CommandText = "TASP_ConsultaMovimientosPorCuenta";
                sqlcmd.CommandType = System.Data.CommandType.StoredProcedure;
                sqlcmd.Parameters.AddWithValue("@IdCuenta", pIdCuenta);
                sqlcmd.Parameters.AddWithValue("@FechaMaxima", pFechaMaxima);
                sqlcmd.Parameters.AddWithValue("@FechaMinima", pFechaMinima);
                sqlcmd.Parameters.AddWithValue("ValorRetorno", -1);
                sqlcmd.Parameters[3].Direction = System.Data.ParameterDirection.ReturnValue;

                SqlDataReader sqlreader = sqlcmd.ExecuteReader();
                MovimientoSaldoModel movimiento;
                List<MovimientoSaldoModel> listaMovimientos = new List<MovimientoSaldoModel>();

                while(sqlreader.Read())
                {
                    movimiento = new MovimientoSaldoModel();
                    movimiento.Fecha = sqlreader.GetDateTime(0);
                    movimiento.Monto = Convert.ToDouble(sqlreader.GetDecimal(1));
                    movimiento.Descripcion = sqlreader.GetString(2);
                    listaMovimientos.Add(movimiento);                    
                }
                sqlreader.Close();
                return listaMovimientos;
            }

            catch (Exception ex)
            {
                throw (ex);
            }
        }
    }
}